﻿using System;
using System.Collections.Generic;

namespace PokerAssistant.Models
{
    public class Mäng
    {
        public Diiler Diiler { get; set; }
        public List<MängijaKäsi> Mängijad { get; private set; }
        public List<Kaart> KaardidLaual { get; private set; }

        public Mäng()
        {
            
        }

        public Mäng(int mängijateArv)
        {
            if (mängijateArv < 0)
                throw new ArgumentException();

            Diiler = new Diiler(true);

            KaardidLaual = new List<Kaart>();
            Mängijad = new List<MängijaKäsi>();

            for (var i = 0; i < mängijateArv; i++)
                Mängijad.Add(new MängijaKäsi());
        }

        public void PaneLaualeKaardid(int mitu)
        {
            KaardidLaual = Diiler.Kaardid.GetRange(0, mitu);
        }

        public void SegaKaardid()
        {
            Diiler.SegaKaardid();
        }

        public void JagaMängijateleKaardid()
        {
            //Jagame igale mängijale kordamööda 2 kaarti
            for (var i = 0; i < 2; i++)
            {
                foreach (var mängijaKäsi in Mängijad)
                    mängijaKäsi.LisaKaart(Diiler.AnnaJärgmineKaart());
            }
        }

        public void JagaÜhisedKaardid()
        {
            if (KaardidLaual.Count == 0)
            {
                //FLOP
                KaardidLaual.Add(Diiler.AnnaJärgmineKaart());
                KaardidLaual.Add(Diiler.AnnaJärgmineKaart());
                KaardidLaual.Add(Diiler.AnnaJärgmineKaart());
            }
            else if (KaardidLaual.Count == 3)
            {
                //TURN
                KaardidLaual.Add(Diiler.AnnaJärgmineKaart());
            }
            else if (KaardidLaual.Count == 4)
            {
                //RIVER
                KaardidLaual.Add(Diiler.AnnaJärgmineKaart());
            }
        }

    }
}